package models

type Tag struct {
	Model
	UserId
	Name string `json:"name"`
}

// 得到所有标签
func GetTags(pageNum, pageSize int, maps interface{}) (tags []Tag) {
	sqlDb.Where(maps).Offset((pageNum - 1) * pageSize).Limit(pageSize).Find(&tags)

	return
}

// 得到所有总数
func GetTagTotal(maps interface{}) (count int64) {
	sqlDb.Model(&Tag{}).Where(maps).Count(&count)
	return
}

// 判断名称是否存在
func ExistTagByName(name string) bool {
	var tag Tag
	sqlDb.Select("id").Where("name=?", name).First(&tag)
	if tag.ID > 0 {
		return true
	}
	return false
}

// 新增
func AddTag(name, createdBy string) bool {
	tx := sqlDb.Create(&Tag{
		Model:  Model{CreatedBy: createdBy},
		UserId: UserId{},
		Name:   name,
	})
	if tx.RowsAffected > 0 {
		return true
	}
	return false
}

// 判断名称是否存在
func ExistTagById(id int64) bool {
	var tag Tag
	sqlDb.Select("id").First(&tag, id)
	if tag.ID > 0 {
		return true
	}
	return false
}

// 删除
func DeleteTag(id int64) bool {
	sqlDb.Where("id=?", id).Delete(&Tag{})
	return true
}

// 修改
func EditTag(id int64, data interface{}) bool {
	sqlDb.Model(&Tag{}).Where("id=?", id).Updates(data)
	return true
}
